package com.nbst.dao.mapper.mes;

import java.util.List;
import java.util.Map;

import com.nbst.dao.base.mapper.BaseMapper;
import com.nbst.model.mes.DispatchedWorkers;
import com.nbst.model.mes.MergeIcstockBill;

/**
 * 
 * @ClassName: MergeIcstockBillMapper
 * @Description:合并领料表Mapper层
 * @author King
 * @date 2019年2月27日
 *
 */
public interface MergeIcstockBillMapper extends BaseMapper<MergeIcstockBill> {
	/**
	 * 根据合并领料单id查询该领料单需要经过几个仓库
	 * 
	 * @param id
	 * @return List<Integer>
	 * @author King
	 * @date 2019年3月5日
	 */
	List<Integer> findByStockID(Integer id);

	/**
	 * 根据合并领料单id、仓库id删除该仓库与该合并领料单的关系
	 * 
	 * @param map
	 * @return int
	 * @author King
	 * @date 2019年3月5日
	 */
	int deleteIcstockbillTemp(Map<String,Object> map);

	List<Map<String,Object>> findByStock(Map<String,Object> map);

	/** 新增关联仓库信息 */
	int insertBatchStockId(List<Map<String,Object>> list);

	/**
	 * 根据合并领料id查询还未完成基本领料的物料申请单信息
	 * 
	 * @param id
	 * @return List<Map<String,Object>>
	 * @author King
	 * @date 2019年3月23日
	 */
	List<Map<String,Object>> getNotOutStockItem(Integer id);

	/**
	 * 根据合并领料id查询已完成全部发料但还未关闭的仓库关系
	 * 
	 * @param id
	 * @return List<Integer>
	 * @author King
	 * @date 2019年3月23日
	 */
	List<Integer> getNoClosedStockTemp(Integer id);

	/**
	 * 根据合并领料id查询未发料分录表的数量（不受领料数量限制的物料在这里无效）
	 * 
	 * @param id
	 * @return Integer
	 * @author King
	 * @date 2019年3月24日
	 */
	Integer getNotOutStockItemCount(Integer id);

	/**
	 * 根据仓库id数组查询合并领料单的内码
	 * 
	 * @param map
	 * @return List<Integer>
	 * @author King
	 * @date 2019年4月15日
	 */
	List<Integer> findByStockIdCondition(Map<String,Object> map);

	/**
	 * 根据合并id查询派工单信息
	 * 
	 * @param id
	 * @return List<DispatchedWorkers>
	 * @author King
	 * @date 2019年6月26日
	 */
	List<DispatchedWorkers> findByDispatchList(Integer id);

	/**
	 * 获取合并发料的信息
	 * 
	 * @param map
	 * @return
	 */
	List<Map<String,Object>> getMergeProdList(Map<String,Object> map);

	/**
	 * 根据合并领料单查询派工单信息
	 * 
	 * @param map
	 * @return
	 */
	List<Map<String,Object>> getDisPatchList(Integer id);

	List<MergeIcstockBill> findByCondition1(Map<String,Object> map);

}